package com.weixing.mall.provider.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.weixing.mall.core.support.auth.SysAuth;
import com.weixing.mall.core.support.auth.SysInfo;
import com.weixing.mall.provider.model.domain.DefectiveProduct;
import com.weixing.mall.provider.model.dto.DefectiveProductDto;
import com.weixing.mall.provider.model.dto.DefectiveProductSaveDto;
import com.weixing.mall.provider.model.enums.DefectiveProductEunm;
import com.weixing.mall.provider.model.query.DefectiveProductAppQuery;
import com.weixing.mall.provider.model.query.DefectiveProductQuery;
import com.weixing.mall.provider.model.vo.DefectiveProductAppVo;
import com.weixing.mall.provider.model.vo.DefectiveProductVo;
import com.weixing.mall.provider.model.vo.front.FrontDefectiveProductDto;

/**
 * <p>
 * 仓库模块-次品库商品表 服务类
 * </p>
 *
 * @author Small
 * @since 2019-11-15
 */
public interface IDefectiveProductService extends IService<DefectiveProduct> {

    IPage<DefectiveProductVo> selectListOfPage(Page page, DefectiveProductQuery defectiveProductQuery);

    void updated(DefectiveProductDto defectiveProductDto);

    void create(DefectiveProductSaveDto defectiveProductSaveDto, SysAuth auth);
    void createFront(FrontDefectiveProductDto defectiveProductSaveDto, SysAuth auth);
    IPage<DefectiveProductAppVo> selectDefectiveProductList(Page page, DefectiveProductAppQuery defectiveProductAppQuery);

    DefectiveProductAppVo selectDefectiveProductById(long id);


    void createRpc(Long orderId, Integer type, Long uid,String remark);

    boolean checkOrder(FrontDefectiveProductDto defectiveProductSaveDto);
}
